home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 2: CDPD 1 / Almathera Ten on Ten - Disc 2: CDPD 1.iso / pd / 176-200 / 189 / nethack / eenamiga.zoo / Amiga / amigaMenu.c < prev    next >
C/C++ Source or Header  |  1988-07-10  |  5KB  |  147 lines

  1. /*
  2.  *  amigaMenu.c     (C) Copyright 1988 by Olaf Seibert (KosmoSoft)
  3.  *
  4.  *  Originally by John Toebes.
  5.  */
  6.  
  7. #define TEXT(nam,str) \
  8. static struct IntuiText nam = {0,1,JAM2,0,0,NULL,(UBYTE *)str,NULL}
  9.  
  10.     /* Commands */
  11.     TEXT(T_HELP,  "?   display help");
  12.     TEXT(T_o,     "O   set options");
  13.     TEXT(T_SHELL, "!   AMIGADOS commands");
  14.     TEXT(T_v,     "v   version number");
  15.     TEXT(T_CR,    "^R  redraw screen");
  16.     TEXT(T_CP,    "^P  repeat last message");
  17.     TEXT(T_Q,     "Q   quit game");
  18.     TEXT(T_S,     "S   save the game");
  19.  
  20.     /* Inventory */
  21.     TEXT(T_i,     "i   inventory");
  22.     TEXT(T_p,     "p   pay your bill");
  23.     TEXT(T_d,     "d   drop an object");
  24.     TEXT(T_D,     "D   Drop several things");
  25.     TEXT(T_COMMA, ",   Pickup an object");
  26.     TEXT(T_SLASH, "/   identify something");
  27.     TEXT(T_c,     "c   call class of objects");
  28.     TEXT(T_C,     "C   Christen a monster");
  29.  
  30.     /* Actions */
  31.     TEXT(T_a,     "a   apply/use something");
  32.     TEXT(T_e,     "e   eat something");
  33.     TEXT(T_q,     "q   quaff a potion");
  34.     TEXT(T_r,     "r   read a scroll");
  35.     TEXT(T_t,     "t   throw/shoot weapon");
  36.     TEXT(T_z,     "z   zap a wand");
  37.  
  38.     /* Preparations */
  39.     TEXT(T_w,     "w   wield a weapon");
  40.     TEXT(T_P,     "P   Put on ring");
  41.     TEXT(T_R,     "R   Remove ring");
  42.     TEXT(T_T,     "T   Take off armor");
  43.     TEXT(T_W,     "W   Wear armor");
  44.     TEXT(T_WPN,   ")   current weapon");
  45.     TEXT(T_ARMOR, "[   current armor");
  46.     TEXT(T_RING,  "=   current rings");
  47.  
  48.     /* Movement */
  49.     TEXT(T_E,     "E   Engrave msg on floor");
  50.     TEXT(T_s,     "s   search");
  51.     TEXT(T_UP,    "<   Go up stairs");
  52.     TEXT(T_DOWN,  ">   Go down stairs");
  53.     TEXT(T_WAIT,  ".   wait a moment");
  54.     TEXT(T_CT,    "^T  Teleport");
  55.  
  56. #define IFLAGS ITEMENABLED|ITEMTEXT|HIGHCOMP
  57. #define IDATA(cmd,str,off) 0,off,WDT,9,IFLAGS,0,(APTR)&str,NULL,cmd,NULL,NULL
  58.  
  59. /* Commands */
  60.  
  61. #undef    WDT
  62. #define WDT 184
  63.  
  64. static struct MenuItem cmdsub[] = {
  65.     { &cmdsub[1], IDATA('?', T_HELP,   0) }, /*   display help */
  66.     { &cmdsub[2], IDATA('O', T_o,     10) }, /*   set options */
  67.     { &cmdsub[3], IDATA('!', T_SHELL, 20) }, /*   AMIGADOS commands */
  68.     { &cmdsub[4], IDATA('v', T_v,     30) }, /*   version number */
  69.     { &cmdsub[5], IDATA(022, T_CR,    40) }, /*R  redraw screen */
  70.     { &cmdsub[6], IDATA(024 ,T_CP,    50) }, /*P  repeat last message */
  71.     { &cmdsub[7], IDATA('Q', T_Q,     60) }, /*   quit game */
  72.     { NULL,      IDATA('S', T_S,     70) }  /*   save the game */
  73. };
  74.  
  75. /* Inventory */
  76.  
  77. #undef    WDT
  78. #define WDT 200
  79.  
  80. static struct MenuItem invsub[] = {
  81.     { &invsub[1], IDATA('i', T_i,      0) }, /*   inventory */
  82.     { &invsub[2], IDATA('p', T_p,     10) }, /*   pay your bill */
  83.     { &invsub[3], IDATA('d', T_d,     20) }, /*   drop an object */
  84.     { &invsub[4], IDATA('D', T_D,     30) }, /*   Drop several things */
  85.     { &invsub[5], IDATA(',', T_COMMA, 40) }, /*   Pickup an object */
  86.     { &invsub[6], IDATA('/', T_SLASH, 50) }, /*   identify something */
  87.     { &invsub[7], IDATA('c', T_c,     60) }, /*   call a class of objects */
  88.     { NULL,      IDATA('C', T_C,     70) }  /*   Christen a monster */
  89. };
  90.  
  91. /* Actions */
  92.  
  93. #undef    WDT
  94. #define WDT 184
  95.  
  96. static struct MenuItem actsub[] = {
  97.     { &actsub[1], IDATA('a', T_a,     0) }, /*   apply/use something */
  98.     { &actsub[2], IDATA('e', T_e,    10) }, /*   eat something */
  99.     { &actsub[3], IDATA('q', T_q,    20) }, /*   quaff a potion */
  100.     { &actsub[4], IDATA('r', T_r,    30) }, /*   read a scroll */
  101.     { &actsub[5], IDATA('t', T_t,    40) }, /*   throw/shoot weapon */
  102.     { NULL,      IDATA('z', T_z,    50) }  /*   zap a wand */
  103. };
  104.  
  105. /* Preparations */
  106.  
  107. #undef    WDT
  108. #define WDT 144
  109.  
  110. static struct MenuItem armsub[] = {
  111.     { &armsub[1], IDATA('w', T_w,      0) }, /*   wield a weapon */
  112.     { &armsub[2], IDATA('P', T_P,     10) }, /*   Put on ring */
  113.     { &armsub[3], IDATA('R', T_R,     20) }, /*   Remove ring */
  114.     { &armsub[4], IDATA('T', T_T,     30) }, /*   Take off armor */
  115.     { &armsub[5], IDATA('W', T_W,     40) }, /*   Wear armor */
  116.     { &armsub[6], IDATA(')', T_WPN,   50) }, /*   current weapon */
  117.     { &armsub[7], IDATA('[', T_ARMOR, 60) }, /*   current armor */
  118.     { NULL,      IDATA('=', T_RING,  70) }  /*   current rings */
  119. };
  120.  
  121. /* Movement */
  122.  
  123. #undef    WDT
  124. #define WDT 192
  125.  
  126. static struct MenuItem movsub[] = {
  127.     { &movsub[1], IDATA('E', T_E,     0) }, /*   Engrave msg on floor */
  128.     { &movsub[2], IDATA('s', T_s,    10) }, /*   search */
  129.     { &movsub[3], IDATA('<', T_UP,   20) }, /*   Go up stairs */
  130.     { &movsub[4], IDATA('>', T_DOWN, 30) }, /*   Go down stairs */
  131.     { &movsub[5], IDATA('.', T_WAIT, 40) }, /*   wait a moment */
  132.     { NULL,      IDATA(024, T_CT,   50) }  /*T  Teleport */
  133. };
  134.  
  135. /* Menustrip */
  136.  
  137. /* Width = #letters * 8 + 8 */
  138.  
  139. struct Menu HackMenu[] = {
  140.    { &HackMenu[1], 10,0, 72,0,MENUENABLED,"Commands",     &cmdsub[0] }, /*8*/
  141.    { &HackMenu[2], 82,0, 80,0,MENUENABLED,"Inventory",    &invsub[0] }, /*9*/
  142.    { &HackMenu[3],162,0, 64,0,MENUENABLED,"Actions",      &actsub[0] }, /*7*/
  143.    { &HackMenu[4],226,0,104,0,MENUENABLED,"Preparations", &armsub[0] }, /*12*/
  144.    { NULL,      330,0, 72,0,MENUENABLED,"Movement",     &movsub[0] }  /*8*/
  145. };
  146.  
  147.